From: Florian Müllner Date: Fri, 21 Sep 2012 14:24:50 +0000 (+0200) Subject: userMenu: Force reload of background-image on icon changes X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~5740 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=6f3cf0ae50af0f7a9cd68760abe695009605c0d7;p=gnome-shell.git userMenu: Force reload of background-image on icon changes When changing the user's avatar image, AccountsService will overwrite the old image with the new one, so the location returned by get_icon_file() is always the same. In order to pick up the change, we need to make sure to clear the previous image from both StTextureCache and StThemeNode's paint cache. https://bugzilla.gnome.org/show_bug.cgi?id=679268 --- diff --git a/js/ui/userMenu.js b/js/ui/userMenu.js index 0a3192d12..6ed2e8443 100644 --- a/js/ui/userMenu.js +++ b/js/ui/userMenu.js @@ -73,6 +73,11 @@ const UserAvatarWidget = new Lang.Class({ let file = Gio.File.new_for_path(iconFile); this.actor.child = null; this.actor.style = 'background-image: url("%s");'.format(iconFile); + + // AccountsService uses a fixed location for avatar images, so + // we need to clear out all cached data to pick up image changes, + // see https://bugzilla.gnome.org/show_bug.cgi?id=679268 + this.actor.clear_background_image(); } else { this.actor.style = null; this.actor.child = new St.Icon({ icon_name: 'avatar-default-symbolic',